package com.ljp.serializer;

import java.io.IOException;

/**
 *  序列化器接口
 *
 * ClassName: Serializer
 * Package: com.ljp.serializer
 * Description:
 *
 * @Author: ljp
 * @Create: 2025/6/4-下午 03:16
 * @Version: 1.0
 */
public interface Serializer {
    /**
     * 序列化
     *
     * @param object 序列化对象
     * @return 序列化后的字节数组
     * @throws IOException 序列化异常
     * @param <T> 序列化类型
     */
    <T> byte[] serialize(T object) throws IOException;

    /**
     * 反序列化
     *
     * @param bytes 序列化后的字节数组
     * @param type  反序列化类型
     * @param <T>   反序列化类型
     * @return 反序列化后的对象
     * @throws IOException 反序列化异常
     */
    <T> T deserialize(byte[] bytes, Class<T> type) throws IOException;
}
